<html>
<head><title>scenarios where distcc can help</title>
    <meta name="author" content="Martin Pool">
    <meta name="keywords" content="distributed, make, build, gcc,
               parallel, network, networked, faster, free, fast, paralel, cc, c,
               C++, Objective C, ObjC, compile, compiler, compilation,
               simple, GPL, GNU, Linux, BSD, Unix, software, development,
               developer, TeamBuilder, quick, dmake, pvmake,
               transparent, easy, workstations, Solaris, IncrediBuild,
               productivity, speed, time, tool, performance, hardware,
               agents, nfs, libraries, source, headers, workload,
               buildfarm, farm, server, cluster, clustered, clustering, MOSIX, OpenMOSIX">
    <meta name="description" content="distcc is a fast, free distributed C and C++ compiler.">
    <link rel="SHORTCUT ICON" href="favicon.ico">
    <link type="text/css" rel="stylesheet" href="distcc-green.css">
    <link type="text/html" rel="top" href="index.html">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
   <body vlink="#003300" text="#000000" link="#003300" bgcolor="#ffffff" alink="#336633"><p><table width="100%"><tr><td valign="top"><div class="navbar"><ul>
          <li><a href="index.html">distcc</a></li>
          <li><a href="http://code.google.com/p/distcc/source/browse/trunk">source</a>
          <li><a href="http://code.google.com/p/distcc/downloads/list">binaries</a></li>
          <li><a href="http://distcc.googlecode.com/svn/trunk/NEWS">news</a></li>
          <li><a href="scenarios.html"><b>scenarios</b></a></li>
	  <li><a href="results.html">testimonials</a></li>
	  <li><a href="benchmark.html">benchmarks</a></li>
	  <li><a href="security.html">security</a></li>
	  <li><a href="distcc-lca-2004.html">whitepaper</a></li>
	  <li><a href="http://distcc.googlecode.com/svn/trunk/doc/web/man/">Man pages</a></li>
	  <li><a href="faq.html">FAQ</a></li>

	  <p>
	  <li><a href="http://code.google.com/p/distcc/issues/list">report a bug</a></li>
	  <li><a href="https://lists.samba.org/mailman/listinfo/distcc">mailing list</a>
           <ul><li><a href="mailto:distcc@lists.samba.org">post</a></li>
            <li><a href="http://lists.samba.org/archive/distcc/">archive</a></li>
            <li><a href="news://news.gmane.org/gmane.comp.compilers.distcc">newsgroup</a></li></ul>
	  </li>
          <li><a href="http://freshmeat.net/projects/distcc">Freshmeat</a>
            <ul><li><a href="http://freshmeat.net/subscribe/28140">be notified</a></li></ul>
	  </li>

	  <p>
	  <li>related:</li>
	  <ul>
	      <li><a title="How to use distcc and Gentoo" href="http://www.gentoo.org/doc/en/distcc.xml">Gentoo</a></li>
	      <li><a title="Script to ease building cross-compilers and toolchains" href="http://kegel.com/crosstool/">crosstool</a></li>
	      <li><a title="Cache compiler results" href="https://ccache.dev/">ccache</a></li>
	      <li><a title="Centralized control over distcc and ccache" href="http://ccontrol.ozlabs.org/">ccontrol</a></li>
	      <li><a title="Smart job scheduler" href="http://dmucs.sourceforge.net/">dmucs</a></li>
	  </ul>
       <p><p></td>                                      
       <td valign="top">
       <div class="body">
       <h1 class="title">scenarios where distcc can help</h1>

<p>
  You don't need an enormous custom-built cluster to find distcc
  useful.  Here are some typical scenarios where spending a little
  while installing distcc can pay off in improved productivity.

  <h2>workgroup of developers</h2>
<p>
  You work in an office with several other people, each of whom has a
  PC, workstation or desktop.  Perhaps you work on the same project,
  or perhaps on different projects.  
<p>
  Your project is moderately large, so it takes a while to build:
  waiting for it disrupts your concentration and makes development
  less fun.  You waste time needing to rebuild when somebody changes a
  top-level header.
<p>
  The solution is straightforward: run distcc on other
  machines, and make sure they have the compiler installed.  Your
  machine can distribute work onto others, with lowered priority to
  make sure you don't disrupt other people's work.  The machines don't
  need to be centrally administered, and you don't need root to
  install the daemon.
<p>
  Depending on your project and infrastructure, compilation time could
  easily be more than halved.
<p>
  Faster compilations give you the advantage of being able to do <tt>make
  clean; make all</tt> more frequently, which can catch bugs that
  might be hidden by incorrect Makefile dependencies.  It allows test
  engineers to get builds to test faster.  It makes nightly (or
  hourly? or continuous?) check builds more feasible, so bugs that are
  checked in can be caught and fixed with less disruption.
<p>
  In a variation on this, you also have one big machine.  Perhaps it
  primarily acts as a server or master build machine, but you can also
  use it to accelerate compilation on your workstation or laptop.


  <h2>sofa computing</h2>
<p>
  At home, you like to use your laptop and wireless to program on the
  sofa or in the garden.  It's convenient to keep all your working
  directories on the laptop so that you can take it with you wherever
  you go.  
<p>
  However, it's slow and gets hot when you build a large project.
  Fortunately, you also have a faster machine in your home office.
<p>
  Using distcc, you can push most of the work of compilation onto the
  faster machine.  You have the advantage of keeping all your source
  in one place, but compilation runs at the speed of your fast
  machine.


  <h2>working on embedded or small computers</h2>
<p>
  You're developing on a small Linux machine, such as the 
  <a href="http://rikkus.info/zaurus.html#distcc">Zaurus</a> or an embedded
  PC.  It's large enough that you can run editors and work directly on
  it, but small enough that compilation is painfully slow.  On the
  other hand, developing anywhere else is indirect, and necessitates
  continually copying files to and fro.
<p>
  By running the distcc client on the small machine, you can shift
  most of the work onto a cross-compiler installed on a faster
  machine, but otherwise work directly on the box.
</tr></table>
    <div class="thanks">Copyright &copy; 2002&ndash;2004, 2006 Martin Pool.
     <p>Send comments to <tt>distcc(at)lists.samba.org</tt>
</html>
